package cv.gzd.robot.mapper;

import cv.gzd.robot.pojo.User;
import cv.gzd.robot.pojo.vo.UserQueryVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;


/** 用户持久化
 * @author Jun
 */
public interface UserDao {
    /**
     * 查询总条数
     * @param userVo
     * @return 数量
     */
    Integer selectUserCountByUserQueryVo(UserQueryVo userVo);

    /**
     * 查询结果集
     * @param userVo
     * @return user结果集
     */
    List<User> selectUserListUserQueryVo(UserQueryVo userVo);

    /**
     * 通过id查询用户
     * @param id
     * @return
     */
    User selectUserByUid(Integer id);

    /**
     * 修改用户信息
     * @param user
     */
    void updateUser(User user);

    /**
     * 删除用户信息
     * @param id
     */
    void deleteUser(Integer id);

    /**
     * 新增用户
     * @param user
     */
    void saveUser(User user);

    /**登录处理
     * 通过用户名和密码查询用户
     * @param username
     * @param password
     * @return
     */
    User selectUserByUserNameAndPassword(@Param("username") String username, @Param("password") String password);

    /**
     * 验证用户名是否已经注册
     * @param username
     * @return
     */
    User selectUserByUserName(String username);

    /**
     * 查询是否初始化超级管理员
     * @return
     */
    int selectByRoot();

}
